//
//  ViewController.m
//  UI21-NSURLRequestAndResponse
//
//  Created by 韩旭 on 16/8/11.
//  Copyright © 2016年 lanou. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //    不可变请求和可变请求
    //    NSURL 负责请求 的地址
    NSURL *url = [NSURL URLWithString:@"http://www.baidu.com/user/wanghuang/1.html?userName=xxx&pwdxxx"];
    
    //    把URl变成字符串方法url.absoluteString
    //    把URL获取主机url.host
    //    把URL获取主机url.path
    //    1。完整的URL对应的字符串
    //    2. host :主机地址或者域名
    //    3. path ：主机后对应的路径/ 域名后对应的路径
    //    4. query：？后的内容
    //    5. scheme: url 所遵循的协议
    //    6. resourceSpecifier 除了协议的部分
    //    7.
    //    NSLog(@"baiduURL %@", url.resourceSpecifier);
    //    NSMutableURLRequest
    
    //  1. NSURLRequest
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    //  不可变的啥都不能改, 只能获取
    //  2 .NSMutableURLRequest
//    一般处理网络请求, 都是用网络请求
    NSMutableURLRequest *requestMutable = [NSMutableURLRequest requestWithURL:url];
    
//  1.> 超时时间, 一个请求持续多久，会失败
    requestMutable.timeoutInterval = 60;
//  2.> /HTTPMethod 请求的姿势 GET POST PUT DELETE
    requestMutable.HTTPMethod = @"GET";
//  3.>allHTTPHeaderFields 设置，网络请求头
    requestMutable.allHTTPHeaderFields = @{@"allHTTPHeaderFields" : @"iOS 10.0 / iPhone8, 1"};
// 根据字典特性, 相同key情况下， 后填入的值, 会覆盖前面的值
    [requestMutable setValue:@"iOS 10.0 / iPhone10, 1" forHTTPHeaderField:@"User - Agent"];
    [requestMutable setValue:@"iOS 10.0 / iPhone9, 1" forHTTPHeaderField:@"User - Agent"];
    [requestMutable valueForHTTPHeaderField:@"User - Agent"];
    NSLog(@"%@", requestMutable.allHTTPHeaderFields);
    
//    4. HttpBody (一般post请求时, 才会使用)
//    一般情况下,都是字典、字符串转化成的data
    requestMutable.HTTPBody = [NSData data];
//     NSURLResponse 响应
//    NSURLResponse *resonse = [NSURLResponse ]
    NSHTTPURLResponse *httpResponse = [[NSHTTPURLResponse alloc] initWithURL:url statusCode:200 HTTPVersion:@"HTTP/1.1" headerFields:@{@"data" : [NSDate date]}];
//   1.> statusCode 状态码
//    httpResponse.statusCode
//   2.> allHeaderFields 响应头
//    内容类型格式 编码
// Content - Type : Type:application/json；charset:utf-8
//    时间、日期
//    缓存的一些内容
    NSLog(@"%@", httpResponse.allHeaderFields);
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
